What is pino-abstract-transport?
The pino-abstract-transport package provides a way to create custom transports for Pino, a fast JSON logger for Node.js. These transports can be used to process or forward log messages to different destinations or services in a structured and efficient manner. The package simplifies the development of these transports by abstracting common tasks and providing a standard interface for implementation.
What are pino-abstract-transport's main functionalities?
Creating a custom transport
This feature allows developers to create a custom transport for Pino logs. The code sample demonstrates how to use the `build` function from `pino-abstract-transport` to create a simple transport that prints log messages to the console.
"use strict";\nconst { build } = require('pino-abstract-transport');\nasync function myTransport(opts) {\n return async function (source) {\n for await (const obj of source) {\n console.log(obj);\n }\n };\n}\nmodule.exports = build(myTransport);"
Other packages similar to pino-abstract-transport
pino-pretty
Pino-pretty is a module that can be used to format Pino log messages in a more human-readable way. Unlike pino-abstract-transport, which is focused on creating custom transports, pino-pretty is specifically designed for pretty-printing log messages in development environments.
pino-elasticsearch
Pino-elasticsearch is a transport for Pino that forwards log messages to Elasticsearch. It provides a more specialized functionality compared to pino-abstract-transport, which offers a generic interface for building various types of transports.
pino-abstract-transport
Write Pino transports easily.
Install
npm i pino-abstract-transport
Usage
import build from 'pino-abstract-stream'
exports default async function (opts) {
return build(async function (source) {
for await (let obj of source) {
console.log(obj)
}
})
}
or in CommonJS and streams:
'use strict'
const build = require('pino-abstract-stream')
module.exports = function (opts) {
return build(function (source) {
source.on('data', function (obj) {
console.log(obj)
})
})
}
API
build(fn, opts) => Stream
Create a split2
instance and returns it.
This same instance is also passed to the given function, which is called
synchronously.
Events emitted
In addition to all events emitted by a Readable
stream, it emits the following events:
unknown
where an unparsaeble line is found, both the line and optional error is emitted.
Options
close(err, cb)
a function that is called to shutdown the transport. It's called both on error and non-error shutdowns.
It can also return a promise. In this case discard the the cb
argument.
License
MIT